# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt


import frappe
from frappe.custom.doctype.custom_field.custom_field import create_custom_fields
from frappe.permissions import add_permission, update_permission_property

def setup(company=None, patch=True):
	make_custom_fields()
	add_permissions()

def make_custom_fields(update=True):
	is_zero_rated = dict(fieldname='is_zero_rated', label='Is Zero Rated',
		fieldtype='Check', fetch_from='item_code.is_zero_rated',
		insert_after='description', print_hide=1)
	custom_fields = {
		'Item': [
			dict(fieldname='is_zero_rated', label='Is Zero Rated',
				fieldtype='Check', insert_after='item_group',
				print_hide=1)
		],
		'Sales Invoice Item': is_zero_rated,
		'Purchase Invoice Item': is_zero_rated
	}

	create_custom_fields(custom_fields, update=update)

def add_permissions():
	"""Add Permissions for South Africa VAT Settings and South Africa VAT Account
		and VAT Audit Report"""
	for doctype in ('South Africa VAT Settings', 'South Africa VAT Account'):
		add_permission(doctype, 'All', 0)
		for role in ('Accounts Manager', 'Accounts User', 'System Manager'):
			add_permission(doctype, role, 0)
			update_permission_property(doctype, role, 0, 'write', 1)
			update_permission_property(doctype, role, 0, 'create', 1)


	if not frappe.db.get_value('Custom Role', dict(report="VAT Audit Report")):
		frappe.get_doc(dict(
			doctype='Custom Role',
			report="VAT Audit Report",
			roles= [
				dict(role='Accounts User'),
				dict(role='Accounts Manager'),
				dict(role='Auditor')
			]
		)).insert()
